# -*- coding: utf-8 -*-

import json

# 学习python 字典 这个和java中的map类似， 采用key-value保存数据

dic = {'name': 'mjlf', 'age': 20}
print dic

# 在dic如果使用一个不存在的key去取值，将会出现错误
# print dic['add']
# KeyError: 'add'

dic['name'] = 'John'
print

# 在字典中可以使用以下方式进行判断key是否包含在字典中
if 'name' in dic:
    print dic.get('name', None)

# 可以使用get()方法获取dic中指定key对应的value，如果这个key在字典中不存在的话，和可以自定义返回值
print dic.get('address', None)
# None

dic['address'] = '中关村'
print json.dumps(dic, encoding='utf-8', ensure_ascii=False)
# {"age": 20, "name": "John", "address": "中关村"}

#我们知道在list中可以通过pop(index)删除指定元素，同样在字典中也可以使用同样的方式进行元素删除
dic.pop('address')
print dic
{'age': 20, 'name': 'John'}

# 需要注意的是,字典的key必须是不可变对象,需要注意的是下边虽然使用变量key作为了字典dic1的一个key，最后更改了key，而程序未报错，这是因为
# 这里字典是使用的key的值作为key，而key的值一固定，'12'永远是'12'
key = '12'
value = 'value'
dic1 = {key: value}
key = '11'
print dic1
# {'12': 'value'}
